﻿namespace Istace.Framework.Mapping.Core.Interfaces
{
    /// <summary>
    /// Interface implemented by the mappers
    /// </summary>
    /// <typeparam name="TSource">The type of the source.</typeparam>
    /// <typeparam name="TDestination">The type of the destination.</typeparam>
    public interface IMapper<in TSource, out TDestination> : IMapper
    {
        /// <summary>
        /// Method used to map the object.
        /// </summary>
        /// <param name="instanceToMap">The instance to map.</param>
        /// <returns>
        /// The target object
        /// </returns>
        TDestination Map(TSource instanceToMap);
    }

    /// <summary>
    /// Interface implemented by the mappers
    /// </summary>
    public interface IMapper
    {

    }
}
